using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;

namespace Academia.Datos
{
    public class Usuarios
    {
        public bool UsuarioValidar(string usuario, string password)
        {
            bool existe = false;
            MySqlConnection oConn = Datos.General.CreateConnection();
            using (oConn)
            {
                oConn.Open();

                MySqlCommand oCmd = new MySqlCommand();
                using (oCmd)
                {
                    oCmd.Connection = oConn;
                    oCmd.CommandType = CommandType.StoredProcedure;
                    oCmd.CommandText = "UsuarioValidar";
                    oCmd.Parameters.AddWithValue("@NombreUsuario", usuario);
                    oCmd.Parameters.AddWithValue("@Password", Utilidades.General.MD5Hash(password));

                    MySqlDataReader oReader = oCmd.ExecuteReader();
                    using (oReader)
                    {
                        while (oReader.Read())
                        {
                            existe = (Convert.ToInt32(oReader["Cantidad"]) == 1);
                        }
                    }
                }
            }
            return existe;
        }

        public Entidades.Usuarios UsuariosRecuperarUno(string nombre)
        {
            MySqlConnection oConn = Datos.General.CreateConnection();
            using (oConn)
            {
                oConn.Open();

                MySqlCommand oCmd = new MySqlCommand();
                using (oCmd)
                {
                    oCmd.Connection = oConn;
                    oCmd.CommandType = CommandType.StoredProcedure;
                    oCmd.CommandText = "UsuariosRecuperarUno";
                    oCmd.Parameters.AddWithValue("@Nombre", nombre);

                    Entidades.Usuarios oUsuarios = new Entidades.Usuarios();
                    try
                    {
                        MySqlDataReader oReader = oCmd.ExecuteReader();
                        using (oReader)
                        {
                            while (oReader.Read())
                            {
                                Entidades.Usuario oUsuario = new Entidades.Usuario();
                                oUsuario.NombreUsuario = nombre;
                                oUsuario.Password = Convert.ToString(oReader["password"]);
                                oUsuario.Rol = (Entidades.Usuario.RolUsuario)Convert.ToInt32(oReader["rol"]);
                                
                                oUsuarios.Add(oUsuario);
                                oUsuario = null;
                            }

                            return oUsuarios;
                        }

                    }

                    finally
                    {
                        oUsuarios = null;
                    }
                }
            }
        }

        public string UsuariosRecuperarLegajo(string nombre)
        {
            string legajo = "";
            MySqlConnection oConn = Datos.General.CreateConnection();
            using (oConn)
            {
                oConn.Open();

                MySqlCommand oCmd = new MySqlCommand();
                using (oCmd)
                {
                    oCmd.Connection = oConn;
                    oCmd.CommandType = CommandType.StoredProcedure;
                    oCmd.CommandText = "UsuariosRecuperarLegajo";
                    oCmd.Parameters.AddWithValue("@Nombre", nombre);

                    MySqlDataReader oReader = oCmd.ExecuteReader();
                    using (oReader)
                    {
                        while (oReader.Read())
                        {
                            legajo = Convert.ToString(oReader["legajo"]);
                        }
                    }
                }
            }

            return legajo;
        }
    }
}
